_STATUS87

#include <float.h>
unsigned int _status87();       получает слово статуса плавающей точки

Описание.
Функция _status87 получает слово статуса плавающей точки. Слово статуса плавающей точки является комбинацией 8087/80287 слова статуса и других состояний, обнаруживаемых 8087/80287 handler -ом, таких как переполнение и потеря значимости стека плавающей точки.

Возвращаемое значение.
Биты в возвращаемом значении обозначают статус плавающей точки. Смотрите include -файл <float.h> для полного описания битов, возвращаемых функций _status87.

Замечание!
Большинство из математических библиотечных функций модифицируют слово статуса 8087/80287 с непредсказуемыми результатами. Возвращаемые значения функций _clear87 и _status87 становятся более достоверными после выполнения нескольких операций с плавающей точкой с известными сообщениями слова статуса плавающей точки.

Пример.

               #include <stdio.h>
               #include <float.h>
            
               double a = 1e-40, b;
               float x,y;
               
               main()
               {
               printf("status=%.4x-clear\n",_status87());
            
               /*  запомненное в y является неточным и с потерянной значи-
         мостью */
               y = a;
               printf("status=%.4x-inexect,underflow\n",
                      _status87());
            
               /* y неверно */
               b = y;
               printf("status=%.4x-inexect,underflow,denormal\n",
                      _status87());
            
               /* очистка пользователем 8087 статуса */
               _clear87();
               }

Hosted by uCoz